Modern electronic systems are increasingly using microprocessors to provide greater flexibility and functionality. For example, many home entertainment components such as DVD players include microprocessors to perform video decompression. Computer peripherals such as laser printers, modems, and disk drives also include microprocessors to perform various functions. In the past many of these devices used microprocessors on circuit boards. The circuit boards would include support chips for the microprocessor such as memory, as well as chips to perform the functions of the overall device.
Advances in silicon processing techniques have allowed creation of systems, which include the microprocessor and the support logic, and memory, on a single chip. Further integration also allows systems on a chip that include additional logic functions with the microprocessor and support logic on a single chip. These microprocessors, which are “embedded” within the system, are generally referred to as embedded processors. For clarity, “embedded processor” as used herein includes a processing core, the memory system for the processing core, and support logic for the processing core and memory system.
Because designing, simulating, laying out (the process of deciding how the various components of the processor are physically placed on a chip), producing and verifying processors, including microprocessors, microcontrollers, and embedded processors are so difficult, most users purchase the microprocessors from a handful of processor companies that have expertise in designing, simulating, laying out, producing and verifying processors.
Different users may have vastly different requirements for microprocessors, especially in the market for embedded processors. Memory configurations for the embedded processor may vary greatly between customers. Providing a small number of memory configurations of a processor risks losing potential users who may turn to other sources for a processor that more closely matches the user's requirements. However, providing a custom memory configuration for each user would require vast resource to design and simulate each custom configuration.
Because embedded processors are often placed on the same silicon die as custom chips, different embedded processors must also compete based on silicon area. Designs requiring larger silicon area would be less competitive than designs requiring less silicon area because dies requiring larger silicon area are more expensive. Furthermore, the shape of the area required by the embedded processor and memory may increase the cost of the die. FIG. 1(a) illustrates an embedded processor 110 having a regular rectangular shape. FIG. 1(b) illustrates an embedded processor 120 having a irregular shape. Specifically, embedded processor 120 has rectangular shape that is missing a notch 125. Embedded processor system 110 and embedded processor 120 require the same silicon area. However, notch 125 might not be useable by other components of the system due to layout, placement, or routing issues. Therefore, effectively, embedded processor 120 would require more silicon area than embedded processor 110 due to the irregular shape of embedded processor 120. Therefore, embedded processor 110 would be more expensive to use than embedded processor 110.
As explained above embedded processors must support multiple memory configurations to satisfy different customers. In conventional embedded processors, changing the size of different memory components or selecting different memory components often lead to irregular shaped embedded processors. For example, notch 125 may be caused in embedded processor 120 because embedded processor 120 is configured to not include a program cache. Notches or other irregularities can also be caused by using differently sized memory banks or memory towers. Alternatively, the layout of some embedded processors are redone to avoid the notches or other irregularities, however redoing a layout is extremely time consuming and may would entail risk of error in the layout process.
Hence there is a need for a configurable memory system of an embedded memory system having a regular shape to provide efficient use of area.